package game;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.awt.event.MouseWheelEvent;
import java.awt.image.BufferedImage;
import java.util.ArrayList;

//O joão é fanta uva e nem ofereceu fgsdsdfgsdf


public class Tela01 extends CanvasAb{
	float gravidade = 500f;
	float VelX =0;
	float VelY = 0;
	float x = 50;
	float y = 260;
	float vel = 200;
	float MAX_FALL_SPEED = 500;
	public static BufferedImage bquadrado = null;
	 ArrayList<Plataforma> platList = new ArrayList<Plataforma>();
	public static boolean JUMP, DOWN, LEFT, RIGHT ;
	Jogador jogador;
	
	public static Plataforma plat;
	
	public Tela01(){
		bquadrado = GamePanel.instance.carregaImagem("Quadrado.png");
		
		jogador = new Jogador(bquadrado, 150, 0, 20, 20);
		plat = new Plataforma(null, 0, 550, 800, 50);
		
	}
	public void geracaoPlat(){
		plat = new Plataforma(null, 0, 550, 800, 50);
		platList.add(plat);
	}

	@Override
	public void Simulase(int difTime) {
		//System.out.println(jogador.VelY);
		if(jogador.VelY> MAX_FALL_SPEED){
			jogador.VelY = MAX_FALL_SPEED;
		}
		
		
		//jogador.VelY +=  gravidade;
		
		//System.out.println(jogador.VelY);
//		if(!JUMP ){
//			
//			if(jogador.VelY < -250){
//				jogador.VelY = -250;
//			}
//			
//		}else if(JUMP && jogador.onGround){
//			
//			jogador.VelY = -vel;	
//			jogador.onGround = false;
//		}
//		if(Math.abs((jogador.oldPosi - jogador.Y)) > 80){
//			jogador.onAir = true;
//		}
//		
//		if(JUMP){
//			if(jogador.onGround){
//				jogador.VelY = -vel; 
//				jogador.onGround = false;				
//				GamePanel.timer = 0;
//			}else if(jogador.onAir && GamePanel.timer < 3.00){
//				//jogador.VelY = -250 ;
//				gravidade = 1.0f;
//			}else{
//				gravidade = 5.0f;
//			}
//			
//		}
		//System.out.println(jogador.VelY);
		System.out.println(jogador.gravity);
		
//		if(JUMP   ){
//			if(jogador.onGround){
//				
//				jogador.VelY += -400;
//				jogador.onGround = false;
//				
//				GamePanel.timer = 0;
//			}else if( GamePanel.timer > 0.50 && jogador.VelY > 0){
//				//jogador.VelY +=  -1.5f;
//				jogador.gravity = 200f;
//				
//		
//			}
//			
//		}else{
//			jogador.gravity = 500f;
//		}
	
		
		if(LEFT){
			jogador.VelX = -vel;
		}else if(RIGHT){
			jogador.VelX = vel;
		}else{
			jogador.VelX = 0;
		}
		jogador.Simulase(difTime);
		
		plat.Simulase(difTime);
		
	}

	@Override
	public void Desenha(Graphics2D dbg) {
		dbg.setColor(Color.green);
		jogador.Desenha(dbg);
		plat.Desenha(dbg);
		
	}

	@Override
	public void keyPressed(KeyEvent e) {
		int key = e.getKeyCode();
		if(key == KeyEvent.VK_UP){
			
			
		}
		if(key == KeyEvent.VK_DOWN){
			//DOWN = true;
			
		}
		if(key == KeyEvent.VK_LEFT){
			LEFT = true;
			
		}
		if(key == KeyEvent.VK_RIGHT){
			RIGHT = true;
			
		}
		if(key == KeyEvent.VK_SPACE){
			JUMP = true;
			
		}
		
		
	}

	@Override
	public void keyReleased(KeyEvent e) {
		int key = e.getKeyCode();
		if(key == KeyEvent.VK_DOWN){
			//DOWN = false;
			
		}
		if(key == KeyEvent.VK_UP){
		
			
		}                                                
		if(key == KeyEvent.VK_LEFT){                                                                          
			LEFT = false;
			
		}
		if(key == KeyEvent.VK_RIGHT){
			RIGHT = false;
			
		}
		if(key == KeyEvent.VK_SPACE){                                                                                              
			JUMP = false;
			
		}
	}

	@Override
	public void MouseMoved(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void mouseMoved(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void mouseDragged(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void mouseReleased(MouseEvent arg0) {
		// TODO Auto-generated method stub
		jogador.EndJump();
		JUMP = false;
	}

	@Override
	public void mousePressed(MouseEvent arg0) {
		// TODO Auto-generated method stub
		jogador.StartJump();
		JUMP = true;
		
		
	}

	@Override
	public void mouseExited(MouseEvent arg0) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void mouseEntered(MouseEvent arg0) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void mouseClicked(MouseEvent arg0) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void mouseWheelMoved(MouseWheelEvent arg0) {
		// TODO Auto-generated method stub
		
	}

}
